﻿Public Class Ddescuento

    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String) As List(Of Edescuento)
        Dim descuentos As List(Of Edescuento) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_descuento_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            descuentos = New List(Of Edescuento)
                            Dim descuento As Edescuento = Nothing
                            Do While dr.Read
                                descuento = New Edescuento( _
                                    dr.GetInt32(dr.GetOrdinal("idDscto")), _
                                    dr.GetString(dr.GetOrdinal("descDscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMin")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMax")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDescuento")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDescuento")))
                                descuentos.Add(descuento)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return descuentos
    End Function
    Public Shared Function SeleccionarTodoXEstado(ByVal descEmpresa As String) As List(Of Edescuento)
        Dim descuentos As List(Of Edescuento) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_descuento_selXEstado", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            descuentos = New List(Of Edescuento)
                            Dim descuento As Edescuento = Nothing
                            Do While dr.Read
                                descuento = New Edescuento( _
                                    dr.GetInt32(dr.GetOrdinal("idDscto")), _
                                    dr.GetString(dr.GetOrdinal("descDscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMin")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMax")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDescuento")))
                                descuentos.Add(descuento)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return descuentos
    End Function
    Public Shared Function SeleccionarTodoXId(ByVal descEmpresa As String, ByVal pIdDscto As Int32) As Edescuento
        Dim descuento As Edescuento = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_descuento_selXId", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idDscto", SqlDbType.Int).Value = pIdDscto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleRow Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            dr.Read()
                            descuento = New Edescuento( _
                                dr.GetInt32(dr.GetOrdinal("idDscto")), _
                                dr.GetString(dr.GetOrdinal("descDscto")), _
                                dr.GetDecimal(dr.GetOrdinal("dsctoMin")), _
                                dr.GetDecimal(dr.GetOrdinal("dsctoMax")), _
                                dr.GetString(dr.GetOrdinal("estado")), _
                                dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                dr.GetInt32(dr.GetOrdinal("idTpoDescuento")))
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return descuento
    End Function
    Public Shared Function SeleccionarTodoXIdProyecto(ByVal descEmpresa As String, ByVal pIdDscto As Int32, ByVal idProyecto As Int32) As Edescuento
        Dim descuento As Edescuento = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_descuento_selXIdProyecto", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idDscto", SqlDbType.Int).Value = pIdDscto
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleRow Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            dr.Read()
                            descuento = New Edescuento( _
                                dr.GetInt32(dr.GetOrdinal("idDscto")), _
                                dr.GetString(dr.GetOrdinal("descDscto")), _
                                dr.GetDecimal(dr.GetOrdinal("dsctoMin")), _
                                dr.GetDecimal(dr.GetOrdinal("dsctoMax")), _
                                dr.GetString(dr.GetOrdinal("estado")), _
                                dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                dr.GetInt32(dr.GetOrdinal("idTpoDescuento")))
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return descuento
    End Function
    Public Shared Function SeleccionarDescuentoxTipo(ByVal descEmpresa As String, ByVal idProyecto As Int32, ByVal idTpoDescuento As Int32) As List(Of Edescuento)
        Dim descuentos As List(Of Edescuento) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_descuento_DescuentoxTipo", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = idProyecto
                cmd.Parameters.Add("@IdTpoDescuento", SqlDbType.Int).Value = idTpoDescuento
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            descuentos = New List(Of Edescuento)
                            Dim descuento As Edescuento = Nothing
                            Do While dr.Read
                                descuento = New Edescuento( _
                                    dr.GetInt32(dr.GetOrdinal("idDscto")), _
                                    dr.GetString(dr.GetOrdinal("descDscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMin")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMax")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDescuento")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDescuento")))
                                descuentos.Add(descuento)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return descuentos
    End Function
    Public Shared Function consultaDescuento(ByVal descEmpresa As String, ByVal pDescuento As Edescuento) As List(Of Edescuento)
        Dim descuentoDetalles As List(Of Edescuento) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("[usp_descuentos_buscXTpoDescuento]", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pDescuento.idProyecto
                cmd.Parameters.Add("@descuentos", SqlDbType.NVarChar, 1000).Value = pDescuento.descuentos
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            descuentoDetalles = New List(Of Edescuento)
                            Dim descuentoDetalle As Edescuento = Nothing
                            Do While dr.Read
                                descuentoDetalle = New Edescuento( _
                                    dr.GetInt32(dr.GetOrdinal("idDscto")), _
                                    dr.GetString(dr.GetOrdinal("descDscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMin")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMax")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDescuento")))
                                descuentoDetalles.Add(descuentoDetalle)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return descuentoDetalles
    End Function

    Public Shared Function SeleccionarProyecto(ByVal descEmpresa As String) As List(Of Eproyecto)
        Dim proyectos As List(Of Eproyecto) = Nothing
        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proyecto_simple_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proyectos = New List(Of Eproyecto)
                            Dim proyecto As Eproyecto = Nothing
                            Do While dr.Read()
                                proyecto = New Eproyecto( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")))
                                proyectos.Add(proyecto)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return proyectos
    End Function
    Public Shared Function SeleccionarTpoDescuento(ByVal descEmpresa As String) As List(Of Edescuento)
        Dim tpoDescuentos As List(Of Edescuento) = Nothing
        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_TipoDescuento_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            tpoDescuentos = New List(Of Edescuento)
                            Dim tpoDescuento As Edescuento = Nothing
                            Do While dr.Read()
                                tpoDescuento = New Edescuento( _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDescuento")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDescuento")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                tpoDescuentos.Add(tpoDescuento)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return tpoDescuentos
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal descuento As Edescuento) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_descuento_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@descDscto", SqlDbType.VarChar, 55).Value = descuento.descDscto
                cmd.Parameters.Add("@dsctoMin", SqlDbType.Decimal, 15, 2).Value = descuento.dsctoMin
                cmd.Parameters.Add("@dsctoMax", SqlDbType.Decimal, 15, 2).Value = descuento.dsctoMax
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = descuento.idUsuario
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = descuento.idProyecto
                cmd.Parameters.Add("@idTpoDescuento", SqlDbType.Int).Value = descuento.idTpoDescuento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal descuento As Edescuento) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_descuento_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idDscto", SqlDbType.Int).Value = descuento.idDscto
                cmd.Parameters.Add("@descDscto", SqlDbType.VarChar, 55).Value = descuento.descDscto
                cmd.Parameters.Add("@dsctoMin", SqlDbType.Decimal, 15, 2).Value = descuento.dsctoMin
                cmd.Parameters.Add("@dsctoMax", SqlDbType.Decimal, 15, 2).Value = descuento.dsctoMax
                cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = descuento.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = descuento.idUsuario
                cmd.Parameters.Add("@idTpoDescuento", SqlDbType.Int).Value = descuento.idTpoDescuento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal descuento As Edescuento) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_descuento_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idDscto", SqlDbType.Int).Value = descuento.idDscto
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = descuento.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    Public Shared Function Buscar(ByVal descEmpresa As String, ByVal pDescuento As Edescuento) As List(Of Edescuento)
        Dim descuentos As List(Of Edescuento) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_descuento_find", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pDescuento.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            descuentos = New List(Of Edescuento)
                            Dim descuento As Edescuento = Nothing
                            Do While dr.Read
                                descuento = New Edescuento( _
                                    dr.GetInt32(dr.GetOrdinal("idDscto")), _
                                    dr.GetString(dr.GetOrdinal("descDscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMin")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMax")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDescuento")))
                                descuentos.Add(descuento)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return descuentos
    End Function

End Class
